package com.abner.juc.threadpool;

import java.util.concurrent.ExecutorService;
import java.util.concurrent.Executors;

import static java.util.concurrent.Executors.*;

/**
 * @author Abner
 */
public class MyThreadPoolDemo {
    public static void main(String[] args) {
        // 创建5个线程池 假设银行有5个办理窗口
        // 谁先办完谁就继续办理下一位 可复用
        ExecutorService executorService = newFixedThreadPool(5);
        // 只有一个线程
        newSingleThreadExecutor();
        // n个线程 可扩容越强则强
        newCachedThreadPool();
        try {
            // 有10个办理业务的人
            for (int i = 0; i < 10; i++) {
                executorService.execute(() -> {
                    System.out.println(Thread.currentThread().getName()+"\t办理业务");
                });
            }
        }catch (Exception e){
            e.printStackTrace();
        }finally {
            executorService.shutdown();
        }

    }
}
